package main

import (
	"fmt"
	"os/exec"
)

func main() {
	var (
		cmd *exec.Cmd
		res []byte
		err error
	)
	// 变量声明尽量写在头部
	// 变量使用var := 赋值方式，会导致goto ERR 不可用

	// golang语言特点，可以将赋值和判断写在一行减少代码，就应该尽量如此写
	// if res, err = cmd.CombinedOutput(); err != nil{

	// 生成Cmd
	cmd = exec.Command("D:\\cygwin64\\bin\\bash.exe", "-c", "sleep 5;ls -l")

	// 执行命令，捕获子进程的输出 (pipe)
	if res, err = cmd.CombinedOutput(); err != nil{
		fmt.Println("err")
		return
	}

	// 打印子进程的输出
	fmt.Println(string(res))
}
